<?php
class Classe_Administrateur extends Classe_Base
{
    /***************************************************************************
    * VARIABLES
    ***************************************************************************/
    // Static 
    /* @var $db Classe_Bdd */
    protected static    $_tbl_name      = 'administrateur';
    protected static    $_prefix        = 'administrateur_';
    protected static    $_pk_name       = 'administrateur_id';
    /***************************************************************************
    * FIN VARIABLES
    ***************************************************************************/
    
    //Fonctions
    public function __construct($db, $id = null)
    {
        //On appelle le parent qui va construire les données de l'objet 
        parent::__construct($db, $id);
        //on peut ensuite rajouter notre traitement
    }
    
    //Surcharge de la fonction parent
    public function         __set($name, $value)
    {
        //Password
        if($name == "password")
            $value = Classe_Securite::bdd(md5(HASH.$value));
        
        parent::__set($name, $value);
    }
    
    //Regarde si l'utilisateur existe
    public function connexion($login, $password)
    {
        //Vérification de l'id et password
        $rq = "SELECT COUNT(*) 
                FROM ".static::$_tbl_name." 
                WHERE ".static::$_prefix."login = '".Classe_Securite::bdd($login)."' 
                    AND ".static::$_prefix."password = '".md5(HASH.Classe_Securite::bdd($password))."';";
        
        //Si il n'y a pas d'utilisateur pour ces identifiants
        if($this->_db->fetchOne($rq) == 0)
        {
            return false;
        }
        else
        {
            //On va chercher l'id
            $rq2 = "SELECT ".static::$_pk_name." 
                    FROM ".static::$_tbl_name." 
                    WHERE ".static::$_prefix."login = '".Classe_Securite::bdd($login)."' 
                        AND ".static::$_prefix."password = '".md5(HASH.Classe_Securite::bdd($password))."';";
            $id = $this->_db->fetchOne($rq2);
            
            //On reconstruit l'objet avec les valeurs de la bdd
            $this->init($id);
            
            //On créer la session
            $_SESSION[static::$_pk_name]                = $this->getId();
            $_SESSION['administrateur_date_connexion']  = $this->date_connexion;
            
            //On sauvegarde dans la bdd la nouvelle date de connexion
            $date = time();
            $this->date_connexion = $date;
            $this->save();
            
            return true;
        }
    }
    //Déconnexion d'un administrateur
    public function deconnexion()
    {
        unset($_SESSION);
        session_destroy();
    }    
}
?>